.TH std::chrono::year_month_day::year_month_day 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::chrono::year_month_day::year_month_day \- std::chrono::year_month_day::year_month_day

.SH Synopsis
   year_month_day() = default;                                        \fB(1)\fP \fI(since C++20)\fP
   constexpr year_month_day( const std::chrono::year& y,

                             const std::chrono::month& m,             \fB(2)\fP \fI(since C++20)\fP

                             const std::chrono::day& d ) noexcept;
   constexpr year_month_day( const std::chrono::year_month_day_last&  \fB(3)\fP \fI(since C++20)\fP
   ymdl ) noexcept;
   constexpr year_month_day( const std::chrono::sys_days& dp )        \fB(4)\fP \fI(since C++20)\fP
   noexcept;
   constexpr explicit year_month_day( const std::chrono::local_days&  \fB(5)\fP \fI(since C++20)\fP
   dp ) noexcept;

   Constructs a year_month_day object.

   1) Default constructor leaves the date uninitialized.
   2) Constructs a year_month_day object that stores the year y, month m and day d.
   3) Constructs a year_month_day object that stores the year ymdl.year(), month
   ymdl.month() and day ymdl.day().
   4) Constructs a year_month_day object that represent the same date as the one
   represented by dp.
   5) Constructs a year_month_day object that represent the same date as the one
   represented by dp, as if by year_month_day(sys_days(dp.time_since_epoch())).

   Constructors (3,4) define implicit conversions from std::chrono::year_month_day_last
   and std::chrono::sys_days, respectively.

   For any year_month_day object ymd representing a valid date (ymd.ok() == true),
   converting ymd to sys_days and back yields the same value.

.SH Notes

   A year_month_day can also be created by combining one of the partial-date types
   std::chrono::year_month and std::chrono::month_day with the missing component (day
   and year, respectively) using operator/.

.SH Example


// Run this code

 #include <chrono>
 #include <iostream>

 int main()
 {
     using namespace std::chrono;

     constexpr auto ymd2 = std::chrono::year_month_day(
         2020y, std::chrono::January, 31d // overload (2)
     );
     std::cout << "ymd2: " << ymd2 << '\\n';

     constexpr auto ymd3 = std::chrono::year_month_day(
         std::chrono::April / std::chrono::Monday[last] / 2023y // overload (3)
     );
     std::cout << "ymd3: " << ymd3 << '\\n';

     const auto now = std::chrono::system_clock::now();
     const auto ymd4 = std::chrono::year_month_day(
         std::chrono::floor<std::chrono::days>(now) // overload (4)
     );
     std::cout << "ymd4: " << ymd4 << '\\n';
 }

.SH Possible output:

 ymd2: 2020-01-31
 ymd3: 2023-04-24
 ymd4: 2023-08-30

.SH See also

   operator/ conventional syntax for Gregorian calendar date creation
   (C++20)   \fI(function)\fP
